package com.cx.string;

/**
 * @author zhangshuai
 * @version V1.0
 * @Project Java2_26
 * @Package com.cx.string
 * @Description:
 * @Date 2025/5/22 8:38
 */

public class StringBufferTest {

    public static void main(String[] args) {

        StringBuffer stringBuffer = new StringBuffer(); //默认容量为16  可变字符串，线程安全，效率低
        stringBuffer.append("123");
        stringBuffer.append("456");
        stringBuffer.append("789");
        stringBuffer.insert(3,"111");//123111456789
        //[3,5)
        stringBuffer.delete(3,5);
        System.out.println(stringBuffer);

        StringBuilder stringBuilder = new StringBuilder(20); //指定容量  可变字符串，线程不安全，效率高
        stringBuilder.append(1);
        System.out.println(stringBuilder);

        //字符串常量池： .intern() 方法可以将字符串添加到字符串常量池中
        String s1 = "123";
        String s2 = "123";
        String s3 = new String("123").intern(); //在堆中创建一个新的对象 //地址引用存在栈中
        String s4 = new String("123").intern();
        System.out.println(s1 == s2); //true  是否都存在字符串常量池中，地址引用一致
        System.out.println(s1 == s3); //false  地址引用不一致
        System.out.println(s3 == s4); //false  地址引用不一致




    }
}